home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / icon tools / iconmanager / iconmanager.guide (.txt) < prev    next >
Amigaguide Document  |  1996-04-07  |  25KB  |  512 lines

  1. @database "IconManager.doc"
  2. @Node Main "IconManager.doc"
  3.             IconManager V37.1
  4.  Copyright 1994 Alex Taylor
  5.                All Rights Reserved
  6.                WhatIs.library
  7.  Copyright 1990, 1992 S.R & P.C.
  8.                All Rights Reserved
  9.                Contents
  10.                ========
  11.               @{" Copyrights and Disclaimer " link copyright}
  12.               @{" System Requirements       " link sysreq}
  13.                  @{" User Requirements         " link usereq}
  14.               @{" Introduction              " link intro}
  15.               @{" Installation              " link inst}
  16.               @{" Usage from the Shell      " link shell}
  17.               @{" Usage from Workbench      " link wb}
  18.               @{" The GUI                   " link gui}
  19.               @{" Icons:                    " link icons}
  20.               @{" WhatIs.library            " link whatis}
  21.               @{" Future                    " link future}
  22.               @{" Obligatory Quotes Section " link quotes}
  23.               @{" Contacting The Author     " link author}
  24.               @{" Acknowledgements          " link acks}
  25. @endnode
  26. @node copyright "Copyright"
  27. IconManager is 
  28.  Copyright 1994 Alex Taylor, all Rights Reserved.
  29. It may be freely distributed, provided that no charge is made, other
  30. than a reasonable fee for media/copying.
  31. It may not be uploaded to BBSs which claim copyright on any uploaded
  32. material. It may not be distributed on coverdisks without the written
  33. permission of the author.
  34. When distributing IconManager, distribute ALL files together, preferably
  35. as the original archive you received (if you did...). None of the files
  36. may be modified, other than "FileTypes", and none may be removed from
  37. the archive. However, feel free to update FileTypes to include new types,
  38. and add new icons to the package. If you do this, though, please send me
  39. copies of both icons and FileTypes so that I can add them to the next release.
  40. As always, Fred Fish has permission to include IconManager on his AmigaLib
  41. CDs/floppies...
  42. IconManager uses the @{" whatis.library " link whatis}, which is 
  43.  Copyright 1990, 1992 S.R & P.C.
  44. See the WhatIs documentation for further details.
  45. DISCLAIMER
  46. ----------
  47. You use IconManager at your own risk. No warranties are made or implied. I do
  48. not know of any bugs in IconManager; however, bugs may exist, so watch it!
  49. I cannot and will not be held responsible for any damage or loss of data/life/
  50. family pets caused by the use or misuse of IconManager, so don't bother sueing.
  51. To summarize : no selling, filching, modifying or complaining (unless it's a
  52.                bug report).
  53. If you do not agree with any of the above, then you must delete this package
  54. now. THIS MEANS YOU!
  55. @endnode
  56. @node sysreq "System Requirements"
  57. Any Amiga running Kickstart V37+ (not supplied)
  58. WhatIs.library (supplied)
  59. @endnode
  60. @node usereq "User Requirements"
  61. IconManager is Shareware. If you use it, you are requested to pay the Shareware
  62. Fees are as follows:
  63.             
  64. 5.00 sterling
  65.         OR  $US10.00
  66.         OR  DM15,-
  67.     If you live in Great Britain, you can pay by cheque, postal order or cash.
  68.     For the rest of the world, unless you know an alternative cheap method, 
  69.     please send CASH ONLY! Cash is acceptable in any of the above currencies.
  70.     Alternatively, if you write Shareware software yourself, send me a
  71.     registered copy of your latest program. (Standard density disks only,
  72.     please.)
  73.     See @{" Contacting The Author " link author} for the addresses.
  74. @endnode
  75. @node intro "Introduction"
  76. Since the release of Workbench2, users have had the option to view all files on
  77. the Workbench, whether they had corresponding .info files or not. Workbench
  78. would create a "pseudo-icon" for those with no icon. However, Workbench only
  79. differentiates between six objects : Disk, Drawer, Tool, Project, Trashcan and
  80. Kick (non-DOS disk). Additionally, Workbench considers a file to be a Tool if
  81. its "executable" bit is set, and a "Project" otherwise, regardless of whether
  82. the file is actually a program or not. This is a bit pathetic, not to mention
  83. boring, staring at rows and rows of identical icons. Wouldn't it be nice if
  84. Workbench could identify the files and display suitable icons for them?
  85. Enter IconManager, stage left   :-)
  86. IconManager fools the Workbench into thinking that icon-less files have real
  87. icons, and then supplies an icon for each file, based on its type. Simple.
  88. Well, not really, otherwise it wouldn't have taken me so long to do...
  89. The idea (according to a text file I found whilst clearing my hard drive)
  90. was generated last November!
  91. Identifying files is done by use of the whatis.library. It recognises 30 
  92. filetypes internally, and more can be added through its configuration file.
  93. See @{" WhatIs.library " link whatis} for details. If the file can be identified, and an
  94. appropriate icon exists for it, then the icon is passed to Workbench, where it
  95. is treated like a real icon. If the file cannot be identified, or if no icon
  96. exists, then Workbench uses the standard defaults instead.
  97. Currently, IconManager only fakes icons for files. Drawers and Disks are
  98. handled in the normal way.
  99. This is not the first program I have seen that does this trick, but it is the
  100. only one that I've seen that actually works...
  101. In addition to this, IconManager provides the ability to write these faked
  102. icons out to disk, thus giving the file a real icon. If the file already had a
  103. real icon, it will be overwritten, but any of its attributes (position, default
  104. tool, tooltypes, etc.) may be preserved.
  105. Finally, if you set the default tool of the fake icons, double-clicking on one
  106. will attempt to load the file into the appropriate tool.
  107. IconManager uses the following algorithm to determine whether or not to fake
  108. icons: If the icon is on the "Workbench" window, it checks the icon of the
  109. directory being scanned, and does what its flags say.  If there is no icon, it
  110. fakes anyway.  Otherwise, it goes by the user's selection on the "Window" menu.
  111. @endnode
  112. @node inst "Installation"
  113. Very easy - double-click on the "Install" icon and follow the instructions.
  114. IconManager's Install uses Commodore's Installer program (not supplied).
  115. If you want to do the installation by hand, this is what you need to do:
  116.     (1) Copy the IconManager executable and its icon to wherever you want
  117.         them. Suggested place is SYS:WBStartup/
  118.     (2) Copy the doc files to wherever you want them.
  119.     (3) Copy Libs/whatis.library to LIBS:
  120.     (4) Copy S/FileTypes to S:
  121.     (5) Copy the Icons drawer to your disk.
  122.     (6) Add the following lines to S:User-Startup  ->
  123.                         Makedir RAM:Icons
  124.                         Copy SYS:Icons/#? RAM:Icons ALL QUIET
  125.                         Assign Icons: RAM:Icons
  126.     Alternatively, if you have a hard drive, you might prefer to save RAM,
  127.     and leave the Icons drawer on the drive, in which case simply assign
  128.     Icons: to wherever you have the icons.
  129.     To have IconManager started up every time you boot, either place it in
  130.     the WBStartup drawer, or add the following line to S:User-Startup  ->
  131.                 Run >NIL: IconManager <options>
  132.     Note that IconManager must be in the path, unless you supply an explicit
  133.     path, and that this line MUST be after the assign statement!
  134.     See @{" Usage from the Shell " link shell} for a description of the command-line options.
  135. @endnode
  136. @node shell "Usage from the Shell"
  137. Type "IconManager ?" at a command prompt to get the command template.
  138. It looks like this:
  139.         M=MODE/N, P=SAVEPOS/S, S=SAVESTACK/S, O=SAVETOOL/S, D=SAVEDEFTOOL/S,
  140.         W=SAVEWINDOW/S, I=ICON/S, X=ICONXPOS/N, Y=ICONYPOS/N, T=ICONTEXT/M
  141.     The arguments act as follows:
  142.         MODE=n      - sets the operation mode of IconManager, where n=0, 1 or 2
  143.                       Defaults to 1
  144.         SAVEPOS     - save old icon's coordinates when overwriting. Defaults
  145.                       FALSE.
  146.         SAVESTACK   - save old icon's stacksize when overwriting. Defaults
  147.                       FALSE.
  148.         SAVETOOL    - save old icon's tooltypes when overwriting. Defaults
  149.                       FALSE.
  150.         SAVEDEFTOOL - save old icon's default tool when overwriting. Defaults
  151.                       FALSE.
  152.         SAVEWINDOW  - save old icon's window defs when overwriting (drawers and
  153.                       disks only...). Defaults FALSE.
  154.         ICON        - create an AppIcon on the Workbench. Defaults FALSE.
  155.         ICONXPOS=n  - x coordinate of the AppIcon. Defaults to NOICONPOSITION.
  156.         ICONYPOS=n  - y coordinate of the AppIcon. Defaults to NOICONPOSITION.
  157.         ICONTEXT=string  - text to display under the AppIcon. Defaults to
  158.                            "Write Icon". MUST be the last argument on the line!
  159. IconManager operates in one of three modes. Mode is set by either the MODE
  160. switch from the Shell, the MODE tooltype from Workbench, or the MODE gadget
  161. in the GUI.
  162. MODE=0  disables IconManager's faking of icons. The "Write Icon" function will 
  163.         still work, though.
  164. MODE=1  (default) IconManager will respect the setting of "Show..." on the
  165.         Workbench "Window" menu.
  166. MODE=2  override mode. Icons will be faked regardless of the menu setting.
  167. NOTE  : When switching between modes, or switching between "Show Only Icons"
  168.     and "Show All Files" on Workbench's "Window" menu, it may be
  169.     neccessary to select "Update" from the "Window" menu in order for
  170.     the changes to take effect.
  171. When running, IconManager creates two AppMenuItems on the "Tools" menu. It will
  172. also optionally create an AppIcon on Workbench. This is controlled by use of
  173. the ICON switch or tooltype.
  174. The first menuitem, "IconManager", brings up the config window when selected.
  175. If the AppIcon is present, double-clicking on it has the same effect.
  176. See @{" The GUI " link gui} for details of its use.
  177. The second menuitem, "Write Icon", will write to disk default icon(s) for any
  178. files selected when the menuitem is selected. Dropping icons on the AppIcon
  179. will also perform this action. Note that the selected icons may be real, faked
  180. or Workbench-created pseudo-icons.
  181. When the selected object has a real icon, certain of its attributes may be
  182. preserved in the new icon. Which attributes are preserved is set by the 
  183. switches above.
  184. WriteIcon will work for any object. Disks and drawers receive the system's
  185. default icon, as do any files which IconManager cannot identify. Note that
  186. IconManager's ID routines are different to Workbench's, so that a file which
  187. shows up with Workbench's "default tool" icon may switch to the "default
  188. project" icon when WriteIcon is performed on it. Default Tool icons will only
  189. be written if the file is actually an executable.
  190. The faked icons can be dropped onto IconEdit or similar, but they will not 
  191. show up in the Shell, directory utilities (eg SID) or file-requesters. This 
  192. is (currently) deliberate. If you would prefer this to be configurable, drop 
  193. me a line. (See @{" Contacting The Author " link author} for addresses.)
  194. Starting a second copy of IconManager will cause the first one to quit.
  195. WARNING : IconManager patches two library functions, dos/ExNext() and
  196.       icon/GetIcon(). It does NOT check them before exiting...so anything
  197.       installed after IconManager which patches the same vectors will be 
  198.       "cut off", and will almost certainly cause a system crash when it 
  199.       is removed. If you are not sure about the state of the patches, you 
  200.       can disable IconManager from its GUI. See @{" The GUI " link gui} for details.
  201.       Additionally, at present, IconManager MUST be run after any programs
  202.       which patch the Workbench menus, eg "ToolsDaemon" (
  203.  Nico Fran
  204. ois).
  205.       This is due to a small problem in the way in which IconManager
  206.       reads the Workbench menus...being investigated :-)
  207.       The best way to ensure this is to set the tooltype "STARTPRI=-128"
  208.       if running from WBStartup, or place it after the "LoadWB" command
  209.       in your startup-sequence if running from the Shell.  If you selete
  210.       "Save" from the GUI, IconManager will write the tooltype out to its
  211.       icon automatically.
  212. NOTE    : If IconManager is launched from the Shell, it does not read its
  213.           tooltypes. Only the command-line arguments apply.
  214. @endnode
  215. @node wb "Usage from Workbench"
  216. To start IconManager, double-click on its icon. Configuration of IconManager
  217. is by the use of tooltypes. The following are available:
  218.            MODE=n
  219.        ICON
  220.        ICONXPOS=n
  221.        ICONYPOS=n
  222.        ICONTEXT=string
  223.        SAVEPOS
  224.        SAVESTACK
  225.        SAVEDEFTOOL
  226.        SAVETOOLS
  227.        SAVEWINDOW
  228.        DONOTWAIT    - needed if you are placing IconManager in WBStartup
  229.        STARTPRI=n    - recommended! Set n=-128, see above for reason!
  230.              
  231. See @{" Usage from the Shell " link shell} for details of what they do.
  232. When you save your configuration from the GUI, it writes new tooltypes into
  233. the icon. These will overwrite all old ones, except the "DONOTWAIT" tooltype,
  234. and the "STARTPRI" tooltype. Note that saving will *ALWAYS* result in the
  235. tooltype "STARTPRI=-128" being written to the icon...
  236. @endnode
  237. @node gui "The GUI"
  238. To bring up the IconManager config window, either select "IconManager" from
  239. the "Tools" nenu on Workbench, or double-click on the AppIcon (if created).
  240. The window is fully font-adaptive, normally to the screen font of Workbench,
  241. but if using the screen font would result in a window larger than the screen,
  242. IconManager will attempt to use the default system font, or, failing that,
  243. topaz-8. In any event, the window will adapt itself to the font when opened.
  244. It will center itself as best as possible on the mouse pointer, but it will
  245. never go off the visible part of the screen (unless it is larger than the
  246. visible part...). Should the worst occur, and come of the gadgets are not
  247. accessible, the keyboard shortcuts will still work.
  248. Under Kickstart V39+, the checkbox gadgets will also be scaled...
  249. The window is divided into three main areas :-
  250.     At the left side are the controls for the AppIcon:
  251.       Create Icon       : If checked, the AppIcon will be created
  252.       Any Position        : If checked, Workbench will put the icon in
  253.                     the first available position
  254.       X            : If the "Any Position" gadget is not checked,
  255.                     you can enter the X coordinate for the AppIcon
  256.                     in here
  257.       Y            : Enter the Y coordinate for the AppIcon here
  258.       Label            : Enter the text to be placed under the AppIcon
  259.                     here
  260.     Notes : If "Any Position" is not checked, the "X" and "Y" gadgets
  261.         will be disabled.
  262.         You can still set the coords and label for the AppIcon
  263.         whether you are creating it or not, and they will still
  264.         be saved to the icon.
  265.         If "Any Position" is checked, then no ICONXPOS or ICONYPOS
  266.         tooltypes will be saved; if the Label is "Write Icon", no
  267.         ICONTEXT tooltype will be saved. This is normal, as the
  268.         defaults are "No Position" and "Write Icon".
  269.     At the right side are the settings for attribute preservation:
  270.       Position        : Save old icon's coords when overwriting
  271.       StackSize        : Save old icon's stacksize when overwriting
  272.       Default Tool        : Save old icon's default tool
  273.       Tool Types        : Save old icon's tooltypes
  274.       Window        : Save old icon's window defs (drawers/disks only)
  275.     At the bottom are the main controls:
  276.       Mode            : Set the operating mode of IconManager
  277.       About...        : Brings up an information window
  278.       Save            : Saves the current config to IconManager's icon
  279.       Use            : Uses the current config without saving
  280.       Cancel        : Return to the previous settings and close the
  281.                     window
  282.       Quit            : Guess what this one does...
  283.     Notes : If there is insufficient memory to open the config window,
  284.         IconManager will open a requester from where you can quit
  285.         the program if you wish.
  286.         All gadgets in the window have keyboard shortcuts.
  287. @endnode
  288. @node icons "Icons:"
  289. The default icons used by IconManager are stored in a drawer. The logical
  290. assignment "Icons:" is made to this drawer, allowing you to put the icons
  291. wherever you like. Floppy users will probably want to copy them to RAM:
  292. for speed. If you have a hard drive (or low memory!), you may prefer to
  293. leave them on your boot disk or something. Mine are in DH1:Icons/
  294. You do not need to have an icon for every filetype IconManager can recognise.
  295. If the file is identified, but no icon exists, then Workbench will provide
  296. a system default icon for it. Workbench will also handle Disk/Drawer icons.
  297. Placing "def_Disk.info" or "def_Drawer.info" in Icons: will have no effect
  298. on this (yet...) However, the icon "def_Tool.info" is used by IconManager.
  299. If this icon is missing, the Workbench will use its "def_Tool" icon instead.
  300. Due to the way in which whatis.library works, IconManager differentiates
  301. between the following types of executable : "def_Tool", "def_Pure Exe",
  302. "def_PP40 Exe", "def_PP30 Exe", and "def_PP Exe".
  303. This neans that even if you want them all to have the same icon, an icon must
  304. exist for each type. See @{" WhatIs.library " link whatis} for more information.
  305. @endnode
  306. @node whatis "WhatIs.library"
  307. IconManager uses the whatis.library to identify filetypes. Whatis.library is
  308.  Copyright S.R & P.C.
  309. Whatis.library recognises 28 different filetypes internally, and more can be
  310. added by means of a simple configuration file, S:FileTypes.
  311. The types whatis.library knows about are:
  312.     Disk
  313.     Assign        - not used by IconManager
  314.     Drawer
  315.     Tool        - executable
  316.     Pure Exe    - executable with the "pure" bit set
  317.     PP40 Exe    - executable packed with Powerpacker V4
  318.     PP30 Exe    - executable packed with Powerpacker V3
  319.     PP Exe        - executable packed with Powerpacker < V3
  320.     Script        - not sure...
  321.     Text        - ASCII text
  322.     Object        - object code
  323.     Lib        - linker library
  324.     IFF        - IFF-ILBM
  325.     ILBM        - not sure about this one...
  326.     ILBM24        - 24-bit ILBM
  327.     ANIM        - IFF-ANIM
  328.     8SVX        - IFF-8SVX
  329.     SMUS        - IFF-SMUS
  330.     FTXT        - IFF-FTXT
  331.     Prefs        - IFF prefs file
  332.     Term        - term file
  333.     Icon        - not used by IconManager!
  334.     Imp Data    - file packed with Imploder
  335.     PP Data        - file packed with Powerpacker
  336.     Zoo        - zoo archive
  337.     LHArc        - LhA or similar archive
  338.     MED Mod        - MED song
  339. The default icon for each of these is "def_<name>.info" where <name> is one
  340. of the above.
  341. Icons for each of these (apart from Assign, Drawer and Icon!) are provided in
  342. the "Icons" drawer of this distribution. Additionally, the S/FileTypes file
  343. adds the follwing types to the list:
  344.     s        - assembler source file
  345.     i        - assembler include file
  346.     c        - C source file
  347.     h        - c include file
  348.     Library        - run-time library
  349.     Device        - device
  350.     JPEG
  351.     Doc        - text file with filename including "doc" somewhere
  352.     Readme        - text file with filename including "readme" somewhere
  353.     Guide        - AmigaGuide file
  354.     DMS        - dms-packed archive
  355.     dvi        - dvi file
  356.     tex        - tex file
  357.     rexx        - ARexx script
  358.     Zip        - zip archive
  359.     pcx        - pcx graphic file
  360.     mod        - SoundTracker/equivalent module
  361.     imgobj        - Imagine file
  362.     filesys        - filesystem
  363. Icon names as above.
  364. Icons for these are also present in "Icons".
  365. I think all the icons are Public Domain; they've been sitting on my hard drive
  366. for so long I can't remember where they came from now  :-)  Apologies if
  367. they're not!
  368. Replace them by all means, but please send me copies of any nice ones that I
  369. can include with the next release.
  370. To define your own types, you need to edit S:FileTypes.
  371. Each filetype has a definition in this file. The format of these definitions
  372. is very simple, using a few keywords to define each type:
  373.     TYPE <string>        - starts the type entry for <string>
  374.                   Must be the first keyword.
  375.     SUBTYPE    <string>    - this type is a subtype of <string>
  376.                   This is optional.
  377.     INSERTAFTER <string>    - places the new type after <string> in the
  378.                   filetypes list, as the list is not
  379.                   alphabetically sorted. Optional, not used by
  380.                   IconManager.
  381.     ICONNAME <string>    - <string> is the name of the default icon
  382.                   filename (minus the .info bit...).
  383.                   Optional. If not supplied, then the string
  384.                   "def_<typename>" will be used instead.
  385.     NAMEPATTERN <string>    - <string> is a standard AmigaDOS pattern-
  386.                   matching string. The filename of the file
  387.                   being scanned must match this pattern.
  388.                   Optional, mutually exclusive with
  389.                   OPTNAMEPATTERN.
  390.     OPTNAMEPATTERN <string>    - the same as NAMEPATTERN, but may be 
  391.                   overridden. Optional, mutually exclusive
  392.                   with NAMEPATTERN.
  393.     COMPAREBYTE <n> <bytes>    - test the file for <bytes> at offset <n>
  394.                   bytes in to it. Optional.
  395.     COMPAREBYTE <n> <string>- test the file for <string> at offset <n>.
  396.                   Optional.
  397.     SEARCHBYTE <string>    - search for <string> in the first block of
  398.                   the file.
  399.     SEARCHBYTE <bytes>    - search for <bytes> in the first block of the
  400.                   file.
  401.     SEARCHPATTERN [CASE] <string>
  402.                 - search for <string> in file. If CASE is
  403.                   specified, search is case-sensitive.
  404.     MATCHPATTERN [CASE] <n> <string>
  405.                 - search for <string> in file at offset <n>.
  406.                   If CASE is specified, search is case-
  407.                   sensitive.
  408.     ENDTYPE            - ends the type entry.
  409.     #            - anything else on this line is a comment.    
  410.  Note : <string> means ASCII text, enclosed in quotes, eg - "Hello"
  411.      <bytes> means actual byte values, entered in hexadecimal,
  412.      eg - $ABCD, or decimal, eg - 1234, or binary, eg - %10101
  413.      <n> means a single number from 0 to 255 ($0 to $FF)
  414. Example: defining the type for assembler source files:
  415.     TYPE "asm"            ; ID string
  416.       SUBTYPE "text"            ; the file  must also be a text file
  417.       NAMEPATTERN "#?.(s|asm)        ; the filename must end in either ".s"
  418.                       ; or ".asm"
  419.       ENDTYPE                ; end of type definition
  420. Example: defining the type for IFF-ILBM files:
  421.     TYPE "iff"            ; ID string
  422.     COMPAREBYTE 0 "FORM"        ; check for the string "FORM" at the
  423.                     ; start of the file
  424.     COMPAREBYTE 8 "ILBM"        ; check for the string "ILBM" at the
  425.                     ; eighth byte in
  426.     ENDTYPE                ; end of type definition
  427. See the FileTypes file for more examples (which work!)    
  428. Whatis.library can perform two types of scanning - LIGHT and DEEP. Light
  429. scanning only checks the filename, so if you renamed an executable to end
  430. in ".s", whatis.library would think it was an assembler source file if the
  431. SUBTYPE keyword were missing. DEEP scanning overrides the filename checking,
  432. which means that libraries (which are executables) show up as executables in
  433. DEEP mode, but libraries in LIGHT mode.
  434. IconManager performs a LIGHT scan, followed by a DEEP scan if the file could
  435. not be identified in LIGHT mode, which means that libraries will show up as
  436. libraries rather than executables...took some doing to get that working!
  437. If any condition in the filetype definition is not satisfied, then
  438. whatis.library will not identify the file as that type.
  439. See the whatis.library documentation for more information.
  440. @endnode
  441. @node future "Future"
  442. What happens next? Well, that's up to you... If people pay the shareware fee,
  443. and send me suggestions, I will continue to develop IconManager.
  444. Current ideas for the next release include:
  445.     A GUI-based editor for the FileTypes file
  446.     Support for muFS so that "protected" files don't show up at all...
  447.     Rewrite the damn thing in C!
  448. Any other ideas? If so, send them to me (with some money :-) and I'll see
  449. what I can do...
  450. If you have an idea for another program, send that along too. I'm doing a
  451. computing course at present, so I may as well get some practise in...
  452. After a fruitless session of trying to get "ShellMenus" to work, I am
  453. thinking about writing my own. Any suggestions for that...?
  454. @endnode
  455. @node quotes "Obligatory Quotes Section"
  456. Well, everybody's doing it these days...
  457.     "Trust me, I'm a Doctor"    - The Doctor (c'mon BBC, bring him back!)
  458.     "The Hedgehog Can Never Be Buggered At All"
  459.                     - Nanny Ogg (
  460.  Terry Pratchett)
  461.     "I need a vacation"        - The Terminator
  462.     "Mind your own business, Spock. I'm sick of your half-breed interference."
  463.                     - James T Kirk
  464.                     
  465.     "UNIX soit qui mal y pense" - unknown
  466.     "Ninety percent of everything is crud"
  467.                     - Sturgeon's Law
  468.                     
  469.     "God made the integers; all else is the work of Man"
  470.                     - unknown
  471.                     
  472.     "Two's company; three's a Liberal Democrat meeting"
  473.                     - unknown
  474. @endnode
  475. @node author "Contacting The Author"
  476. This is a little complicated...
  477.     Shareware fees should be sent to:
  478.     Alex Taylor
  479.     20 Nunroyd Road
  480.     Moortown
  481.     Leeds
  482.     LS17 6PF
  483.     ENGLAND
  484.     Bug reports/suggestions/queries should be sent to the above during
  485.     University holidays, and to one of the below in term-time:
  486.     Internet:    apt@hw.ac.uk
  487.             ceeapt@cs.hw.ac.uk
  488.             ceeapt@cee.hw.ac.uk
  489.         Try them all until you get through...to say that we're not
  490.         very well connected is an understatement!
  491.         The first one is the one I use for anonymous ftp-ing, the
  492.         second one is known to work from the Helios net at Aston
  493.         University (but not from anywhere else at Aston...?), and
  494.         the last one seems to work from Oxford...
  495.     snail-mail:    Alex Taylor
  496.             Newbattle Abbey College
  497.             Dalkeith
  498.             Midlothian
  499.             EH22 3LL
  500.             SCOTLAND
  501.         Note : this address is only valid until June 1994!
  502.         After that, please use the top address if e-mail is
  503.         inappropriate or unavailable.
  504. @endnode
  505. @node acks "Acknowledgements"
  506.     S.R. & P.C (whoever you are) for the whatis.library...
  507.     Commodore for making this job a damn sight harder than it should
  508.     have been! Pleeeeease make Workbench use the LVO's! That's what
  509.     they're there for!
  510.     Whoever it was wrote the program that gave me this idea...
  511. @endnode
  512.